catalog := {
    "x-1": {"name": "a-phone", "suppliers": ["a-corp", "z-corp"]},
    "x-2": {"name": "b-phone", "suppliers": ["b-corp", "z-corp"]},
    "y-1": {"name": "a-pad", "suppliers": ["a-corp"]}
}

# standard iteration form
output1__has_supplier_b_corp if {        # some product has some supplier "b-corp"
    some item in catalog
    some supplier in item.suppliers
    supplier == "b-corp"
}

# free-form iteration with declaration
output2__has_supplier_b_corp if {    # some product has a supplier "b-corp"
    some id
    some index
    catalog[id].suppliers[index] == "b-corp"
}

# free-form iteration without declaration (not recommended)
output3__has_supplier_b_corp if {    # equivalent to output1
    catalog[id].suppliers[index] == "b-corp"
}

# free-form iteration using anonymous iteration variable
output4__has_supplier_b_corp if {    # equivalent to output1
    catalog[_].suppliers[_] == "b-corp"
}
